package udp;

//服务器端
import java.io.*;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

/**
 * 1.创建服务端+端口
 * 2.准备接受容器
 * 3.将容器封装成包
 * 4.接受数据
 * 5.分析数据 将字节数组转换成double类型
 * 6.释放资源
 */
public class Server {
    public static void main(String[] args) {
        try {
            //1.创建服务端+端口
            DatagramSocket server=new DatagramSocket(8888);//参数是端口号
            //2.准备接受容器
            byte[] content=new byte[1024];
            //3.将容器封装成包
            DatagramPacket packet=new DatagramPacket(content,content.length);
            //4.接受数据
            server.receive(packet);
            //5.分析数据
            double data=convert(packet.getData());
//            int len=packet.getLength();
            System.out.println(data);
            //6.释放资源
            server.close();
        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 字节数组+Data 输入流
     * @param data
     * @return
     */
    public static double convert(byte[] data){
        ByteArrayInputStream bais=new ByteArrayInputStream(data);
        DataInputStream dis=new DataInputStream(bais);
        double num=0;
        try {
            num=dis.readDouble();
            dis.close();
            bais.close();

        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            return num;
        }
    }
}
